package com.tianlang.util;

import java.util.Random;
import java.util.regex.Pattern;

/**
 * 
 * @author mchp
 *
 */
public class StringUtil {

	public static boolean isNotEmpty(String str) {
		if (str == null || "".equals(str.trim())) {
			return false;
		}
		return true;
	}

	public static boolean isEmpty(String str) {
		if (str == null || "".equals(str.trim())) {
			return true;
		}
		return false;
	}

	/**
	 * 获取随机数字串
	 * 
	 * @param size
	 * @return
	 */
	public static String getRandomNum(int size) {
		char[] c = { '1', '2', '3', '4', '5', '6', '7', '8', '9', '0' };
		// 初始化随机数产生器
		Random random = new Random();
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < size; i++) {
			sb.append(c[Math.abs(random.nextInt()) % c.length]);
		}
		return sb.toString();
	}

	/**
	 * 获取随机字符串
	 * 
	 * @param size
	 * @return
	 */
	public static String getRandomString(int size) {
		char[] c = { '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'q', 'Q', 'w', 'W', 'e', 'E', 'r', 'R', 't', 'T',
				'y', 'Y', 'u', 'U', 'i', 'I', 'o', 'O', 'p', 'P', 'a', 'A', 's', 'S', 'd', 'D', 'f', 'F', 'g', 'G', 'h',
				'H', 'j', 'J', 'k', 'K', 'l', 'L', 'z', 'Z', 'x', 'X', 'c', 'C', 'v', 'V', 'b', 'B', 'n', 'N', 'm',
				'M' };
		// 初始化随机数产生器
		Random random = new Random();
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < size; i++) {
			sb.append(c[Math.abs(random.nextInt()) % c.length]);
		}
		return sb.toString();
	}

	public static String html2Text(String inputString) {
		// 含html标签的字符串
		String htmlStr = inputString;
		String textStr = "";
		if (isNotEmpty(inputString)) {
			java.util.regex.Pattern pScript;
			java.util.regex.Matcher mScript;
			java.util.regex.Pattern pStyle;
			java.util.regex.Matcher mStyle;
			java.util.regex.Pattern pHtml;
			java.util.regex.Matcher mHtml;

			try {
				// 定义script的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script>
				// }
				String regExScript = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>";
				// 定义style的正则表达式{或<style[^>]*?>[\\s\\S]*?<\\/style>
				// }
				String regExStyle = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>";
				// 定义HTML标签的正则表达式
				String regExHtml = "<[^>]+>";

				pScript = Pattern.compile(regExScript, Pattern.CASE_INSENSITIVE);
				mScript = pScript.matcher(htmlStr);
				// 过滤script标签
				htmlStr = mScript.replaceAll("");

				pStyle = Pattern.compile(regExStyle, Pattern.CASE_INSENSITIVE);
				mStyle = pStyle.matcher(htmlStr);
				// 过滤style标签
				htmlStr = mStyle.replaceAll("");

				pHtml = Pattern.compile(regExHtml, Pattern.CASE_INSENSITIVE);
				mHtml = pHtml.matcher(htmlStr);
				// 过滤html标签
				htmlStr = mHtml.replaceAll("");

				textStr = htmlStr;

			} catch (Exception e) {
				System.err.println("Html2Text: " + e.getMessage());
			}
		}
		// 返回文本字符串
		return textStr;
	}
}
